/*
* @Author: liqs
* @Date:   2021/10/13 14:34
 */
package Attribute

// const AttributeType 字段类型枚举，用来定义数据集属性的字段类型。
const (
	TypeInt32  = "INT32"
	TypeInt64  = "INT64"
	TypeFloat  = "FLOAT"
	TypeDouble = "DOUBLE"
	TypeString = "STRING"
	TypeFile   = "FILE"
)

type AttributeInfos []AttributeInfo

func AddAttributeInfo(as AttributeInfos, a AttributeInfo) (infos AttributeInfos) {
	infos = append(as, a)
	return infos
}

type AttributeInfo struct {
	// 名称
	Name string `json:"name"`
	// 类型
	AttributeType string `json:"attributeType"`
	// 长度
	Length int `json:"length,string"`
	// 值
	Value interface{} `json:"value,string"`
}

func (attributeInfo *AttributeInfo) SetName(name string) {
	attributeInfo.Name = name
}

func (attributeInfo *AttributeInfo) GetName() (name string) {
	return attributeInfo.Name
}

func (attributeInfo *AttributeInfo) SetAttributeType(attributeType string) {
	attributeInfo.AttributeType = attributeType
}

func (attributeInfo *AttributeInfo) GetAttributeType() (attributeType string) {
	return attributeInfo.AttributeType
}

func (attributeInfo *AttributeInfo) SetLength(length int) {
	attributeInfo.Length = length
}

func (attributeInfo *AttributeInfo) GetLength() (Length int) {
	return attributeInfo.Length
}

func (attributeInfo *AttributeInfo) SetValue(value interface{}) {
	attributeInfo.Value = value
}

func (attributeInfo *AttributeInfo) GetValue() (value interface{}) {
	return attributeInfo.Value
}
